import dataPreferences from '@ohos.data.preferences';

// 获取应用上下文
// @ts-ignore
let context = getContext(this);

export default class PreferencesManager {
  // 创建 PreferencesManager 的单例
  static shared = new PreferencesManager();

  // 定义 Preferences 对象和偏好名称
  preferences?: dataPreferences.Preferences;
  preferencesName: string = 'CommonPreferences';

  // 初始化 Preferences 实例
  initPreferences() {
    this.preferences = dataPreferences.getPreferencesSync(context, { name: this.preferencesName });
  }

  // 设置数据
  set(key: string, value: dataPreferences.ValueType) {
    // 如果 Preferences 未初始化，则先初始化
    if (!this.preferences) {
      this.initPreferences();
    }
    // 存储数据并立即写入
    this.preferences?.putSync(key, value);
    this.preferences?.flush();
  }

  // 获取数据
  get(key: string): dataPreferences.ValueType | null | undefined {
    // 如果 Preferences 未初始化，则先初始化
    if (!this.preferences) {
      this.initPreferences();
    }
    // 获取存储的数据
    let value = this.preferences?.getSync(key, null);
    return value;
  }
}
